// test1
// let obj ={
//   time: 1565080001971,
//   test: 'test'
// }

// obj = formTime(obj)

// function formTime(obj, type='time') {
//   let proxy = new Proxy(obj, {
//     get: function(target, property) {
//       // console.log('target', target, 'property', property)
//       if(property === type) {
//         let time =new Date(target[property])
//         let y = time.getFullYear()
//         return y 
//       }
//       return target[property]
//     }
//   })
//   return proxy
// }


// console.log('obj.time', obj.time)
// console.log('obj.test', obj.test)

// test2

function createArray(...elements) {
  let handler = {
    get(target, propKey, receiver) {
      console.log('target', target, 'propKey', propKey)
      let index = Number(propKey);
      if (index < 0) {
        propKey = String(target.length + index);
      }
      return Reflect.get(target, propKey, receiver);
    }
  };

  let target = [];
  target.push(...elements);
  return new Proxy(target, handler);
}

let arr = createArray('a', 'b', 'c');
arr[-1] // 